#include <iostream>

using namespace std;

int main()
{
    unsigned u = 10;
    int i = -42;
    cout << i + i << endl;      // 输出 -84
    cout << u + i << endl;      // 如果 int 占 32 位，输出 4294967264

    unsigned u1 = 42, u2 = 10;
    cout << u1 - u2 << endl;    // 正确：输出 32
    cout << u2 - u1 << endl;    // 正确：不过，结果是取模后的值

    // 错误：变量 u 永远也不会小于 0，循环条件一直成立
    // for (unsigned u = 10; u >= 0; --u)
    //     cout << u << endl;

    u = 11; // 确定要输出的最大数（10），从比它大 1 的数开始
    while (u > 0) {
        --u;        // 先减 1，这样最后一次迭代时就会输出 0
        cout << u << endl;
    }
}